// 参考文档：https://www.jianshu.com/p/285b37fdf5fc

// 导入koa模块
const Koa = require('koa');
const koaBody = require('koa-body');
// 创建koa的实例app
const app = new Koa();

const main = require('./generateImage')
const redis = require('./redis')

// 导入koa-router模块
const Router = require('koa-router');
// 创建koa-router的实例router
const router = new Router();


router.get('/image', async ctx => {
  const body = await main()
  ctx.body = {
    code: 0,
    data: body
  }
})

// 角度校验接口
// koaBody({multipart: true}) 如果request的Content-Type为：multipart/form-data时使用，用于文件上传
router.post('/auth', koaBody(), async ctx => {
  const { deg, id} = ctx.request.body
  if (id && deg) {
    const degValue = await redis.syncGet(id)
    if (Math.abs(deg - degValue) < 10) {
      ctx.body = {
        code: 0,
        msg: 'success'
      }
    } else {
      ctx.body = {
        code: -1,
        msg: '角度不正确'
      }
    }
  } else {
    ctx.body = {
      code: -1,
      msg: '缺少id'
    }
  }  
})

app.use(router.routes())
// 监听端口
app.listen(3000, () => {
  console.log("服务器已启动，http://localhost:3000");
})